import 'package:flutter/material.dart';

import 'share_data_widget.dart';

class ChildWidget extends StatefulWidget {
  @override
  _ChildWidgetState createState() => _ChildWidgetState();
}

class _ChildWidgetState extends State<ChildWidget> {
  @override
  Widget build(BuildContext context) {
    //return const Text('text');

    //使用InheritedWidget中的共享数据
    return Text(ShareDataWidget.of(context).data.toString());

    // return Text(ShareDataWidget.getElementForInheritedWidgetOfExactType(context)
    //     .data
    //     .toString());
  }

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    //父或祖先widget中的InheritedWidget改变(updateShouldNotify返回true)时会被调用。
    //如果build中没有依赖InheritedWidget，则此回调不会被调用。
    /// 我们可以在这里获取变化的参数，进行一些比如 网络请求的场景
    print('ChildWidget-----Dependencies change');
  }
}

class ChildWidget1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Text(ShareDataWidget.getElementForInheritedWidgetOfExactType(context)
        .data
        .toString());
  }
}
